3D environments are generated by computers for many applications, including, for example, structured or unstructured video games, online social networks, or anything for which a 3D user interface is useful.
Elements that appear in 3D environments are rendered representations of underlying 3D geometrical objects, also called models. Each 3D object is definable using a set of vertices, faces, face normals, two-dimensional (“2D”) textures, and other data. 3D objects may also be described by a set of parameters, for example, width, length, depth, and so forth. 3D geometrical model information generally includes 3D coordinate and/or parameter data, and 2D image data defining colors and other surface attributes of the model. Model information may also include position and orientation information for the model as a whole and/or for portions thereof. For example, a character or other model that can be animated may include an armature of “bones” each of which controls a position and orientation of a subset of vertices that make up the model. Bones of the armature can be independently controlled to animate the character. Data sets that define specific armature movements, for example, walking, running, sitting, and so forth, can be used with model information to create an animated scene in response to user input. Model and scene information can be provided to a render engine with an at least partly user-controlled viewpoint and lighting related information, and other render settings, to produce a video frame. A sequence of such frames made responsive to certain inputs can be used to provide the user experience of the game or virtual reality.
“Virtual reality” is a loosely defined term that has been used for various types of content produced based on 3D computer models, including, for example, various video game content, and animated film content. In this type of virtual reality, a user can navigate through a 3D environment generated based on the computer model, by controlling the position and orientation of a virtual camera that defines a viewpoint for a 2D scene that is displayed on a two-dimensional display screen. A variation of these technologies is sometimes called “augmented reality.” In an augmented reality setup, the display technology shows a combination of the user's surroundings that is “augmented” by one or more digital objects or overlays. Augmented reality content may be as simple as textual “heads up” information about objects or people visible around the user, or as complex as transforming the entire appearance of the user's surroundings into a fantasy environment that corresponds to the user's real surroundings.
More recently, “virtual reality” has been applied to various types of immersive video stereoscopic presentation techniques including, for example, stereoscopic virtual reality headsets. Headsets and other presentation methods immerse the user in a 3D scene. Lenses in the headset enable the user to focus on a lightweight split display screen mounted in the headset only inches from the user's eyes. Different sides of the split display show right and left stereoscopic views of video content, while the user's peripheral view is blocked. In another type of headset, two separate displays are used to show different images to the user's left eye and right eye respectively. In another type of headset, the field of view of the display encompasses the full field of view of eye including the peripheral view. In another type of headset, an image is projected on the user's retina using controllable small lasers, mirrors or lenses. Either way, the headset enables the user to experience the displayed virtual reality content more as if the viewer were immersed in a real scene. In the case of augmented reality content, the viewer may experience the augmented content as if it were a part of, or placed in, the augmented scene. “Augmented reality” may sometime be abbreviated as “AR.”
These immersive effects may be provided or enhanced by motion sensors in the headset that detect motion of the user's head, and adjust the video display(s) accordingly. By turning his head to the side, the user can see the virtual reality scene off to the side; by turning his head up or down, the user can look up or down in the virtual reality scene. The headset may also include tracking sensors that detect position of the user's head and/or body, and adjust the video display(s) accordingly. By leaning in, the user can see the virtual reality scene from a different point of view. By leaning to the side, the user can see the virtual reality scene from a different point of view. This responsiveness to head movement, head position and body position greatly enhances the immersive effect achievable by the headset. The user may be provided the impression of being placed inside or “immersed” in the virtual reality scene.
These immersive virtual reality (“VR”) headsets and other immersive technologies are especially useful for game play of various types, which involve user exploration of a modelled environment generated by a rendering engine as the user controls one or more virtual camera(s) using head movement, the position or orientation of the user's body, head, eye, hands, fingers, feet, or other body parts, and/or other inputs. To provide an immersive experience, the user needs to perceive a freedom of movement that is in some way analogous to human visual perception when interacting with reality. Content produced for VR can provide this experience using techniques for real-time rendering that have been developed for various types of video games. The content is designed as a three-dimensional computer model with defined boundaries and rules for rendering as video output. This content can be enhanced by stereoscopic techniques to provide stereoscopic output, sometime referred to as “3D,” and associated with a VR application that manages the rendering process in response to movement of the VR headset, to produce a resulting VR experience. The user experience is very much like being placed inside a rendered video game.
Interactive video games for play on a personal computer or gaming console are sometimes programmed to include non-player characters that interact with player avatars in various ways. For example, it is common in first-person shooter and similar games for the player to face and be required to overcome various hazards caused by an onslaught of non-player characters or other players. Once overcoming these hazards the player may be required to beat a “boss character” to advance to a new level of play. This style of play is almost as old as video games themselves. Non-player characters in such games are provided with programmed behaviors that do not change during game play, apart from random variation that may be built into an algorithm for controlling the character.
Notwithstanding these methods of providing 3D virtual environments, games, and adding variation to behavior of non-player characters, possibilities for enriching the user experience remain.
It would be desirable, therefore, to develop new methods and other new technologies for effects in 3D environments, that overcome these and other limitations of the prior art and enhance the appeal and enjoyment of various 3D environments.